package supermarket;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerThread extends Thread{
    private Socket s;
    ObjectOutputStream oos ;
    ObjectInputStream ois  ;
    public ServerThread(Socket s){
        this.s=s;
    }
    public void run(){
        try {
            ServerClient sa = new ServerClient();
            oos = new ObjectOutputStream(s.getOutputStream());
            ois = new ObjectInputStream(s.getInputStream());
            while (true) {
                // 接受客户请求的对象
                DataPool datas = (DataPool) ois.readObject();
                // 创建服务器服务类的对象

                // 判断客户端传过来的标识是想调用什么方法
                if (datas.getFlag().equals(Flag.LOGIN)) {
                    datas = sa.doLogin(datas);
                    // 新增商品,查询增加商品编号是否存在
                } else if (datas.getFlag().equals(Flag.SEARCH)) {
                    datas = sa.search(datas);
                    // 新增商品种类
                } else if (datas.getFlag().equals(Flag.NEWADD)) {
                    datas = sa.newAdd(datas);
                    // 查询所有商品
                } else if (datas.getFlag().equals(Flag.ALLGOODS)) {
                    datas = sa.allGoods(datas);
                    // 按商品编号查询商品
                } else if (datas.getFlag().equals(Flag.ONEGOODS)) {
                    datas = sa.oneGoods(datas);
                    // 增加商品数量
                } else if (datas.getFlag().equals(Flag.ADDIN)) {
                    datas = sa.addin(datas);
                    // 扫描商品
                } else if (datas.getFlag().equals(Flag.SCAN)) {
                    datas = sa.scan(datas);
                    // 修改商品
                } else if (datas.getFlag().equals(Flag.MODIFY)) {
                    datas = sa.modify(datas);
                    // 商品结账
                } else if (datas.getFlag().equals(Flag.ACCOUNT)) {
                    datas = sa.account(datas);
                    // 判断vip卡号是否存在
                } else if (datas.getFlag().equals(Flag.VIPNUM)) {
                    datas = sa.vipCardNum(datas);
                    // 商品出库
                } else if (datas.getFlag().equals(Flag.OUT)) {
                    datas = sa.out(datas);
                    //清空购物车
                } else if (datas.getFlag().equals(Flag.CLEAR)) {
                    datas = sa.clear(datas);
                }
                // 把datas作为返回值写入客户端
                oos.writeObject(datas);
                oos.flush();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        }

    }


}
